約 2,912,841 件
https://w.atwiki.jp/sampleisbest/pages/135.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 コンソール アプリケーション プロジェクト名 StringBuiler アプリケーションの種類 コンソール アプリケーション 追加のオプション 空のプロジェクト clrtest.cpp using namespace System; using namespace System Text; int main() { StringBuilder^ sb = gcnew StringBuilder; sb- Append("tako\n"); sb- Append("ika\n"); String^ s = sb- ToString(); Console Write(s); Console ReadLine(); return 0; } StringBuiler.c #define _CRT_SECURE_NO_WARNINGS #include stdio.h #include stdlib.h #include string.h typedef struct { char *str; int len; int extent; } StringBuilder; //============================================================================== void SBInit(StringBuilder *sb) { sb- len = 0; sb- extent = 16; sb- str = (char *)malloc(sb- extent); sb- str[0] = \0 ; } void SBTerm(StringBuilder *sb) { free(sb- str); } void SBAppend(StringBuilder *sb, const char *str) { int newLen; int newExtent; newLen = sb- len + strlen(str); newExtent = sb- extent; while (newExtent = newLen) { newExtent = 1; } if (sb- extent newExtent) { sb- extent = newExtent; sb- str = (char *)realloc(sb- str, sb- extent); fprintf(stderr, "newExtent=[%d]\n", newExtent); } strcpy(sb- str + sb- len, str); sb- len = newLen; } //============================================================================== int main(int argc, char *argv[], char *envp[]) { StringBuilder sb; SBInit( sb); while (*envp) { SBAppend( sb, *envp); SBAppend( sb, "\n"); envp++; } printf("%s", sb.str); SBTerm( sb); return 0; }
https://w.atwiki.jp/bemani2dp/pages/4439.html
GENRE TITLE ARTIST bpm notes CLEAR RATE EDM Gimme a Big Beat kors k 138 n%(yyyy/mm/dd) 攻略・コメント 名前 コメント
https://w.atwiki.jp/sampleisbest/pages/274.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 プロジェクト プロジェクト名 WaveGraph アプリケーションの種類 Windows アプリケーション 追加のオプション 空のプロジェクト 文字セット Unicode Waveファイル(PCM 11.025kHz 8bit mono)を想定。 WaveGraph.cpp // WaveGraph3 Waveファイルグラフ表示(自己相関) #pragma comment(lib, "winmm") #define _USE_MATH_DEFINES #include Windows.h #include tchar.h #include math.h #include vector using namespace std; typedef struct { int pos; int waveLen; int noteNum; double vol; } Wave; typedef vector Wave VWave; #define SAFE_FREE(p)if (p) { free(p); p = NULL; } #define NORM(b)((b - 128.0) / 128) #define log2(x)(log(x) / log(2.0)) #define A469 #define APP_NAMETEXT("WaveGraph") // 関数プロトタイプ宣言 void Trace(LPCTSTR format, ...); BOOL Load(LPTSTR pszFileName); BOOL ReadWaveFile(LPTSTR pszFileName); BOOL AnalyzeWave(void); double Volume(int pos, int wl); LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); void OnCreate(HWND hWnd); void OnSize(HWND hWnd, WPARAM wParam, LPARAM lParam); void OnHScroll(HWND hWnd, WPARAM wParam); void OnPaint(HWND hWnd); void OnChar(HWND hWnd, WPARAM wParam, LPARAM lParam); void Play(HWND hWnd); void OnWomOpen(void); void OnWomDone(HWND hWnd); // 音階 LPCTSTR scale[] = {L"C",L"C#",L"D",L"D#",L"E",L"F",L"F#",L"G",L"G#",L"A",L"A#",L"B"}; // 外部変数 SCROLLINFO siHorz; DWORD sampleLength; PBYTE waveformData = NULL; WAVEFORMATEX wfx; VWave vWave; DWORD sampleLength2; PBYTE waveformData2 = NULL; HWAVEOUT hwo; WAVEHDR wh; HCURSOR hCursor = NULL; //============================================================================== int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow) { // プログラム引数 LPTSTR lpCmdLine = GetCommandLine(); int argc; LPTSTR *argv = CommandLineToArgvW(lpCmdLine, argc); if (2 = argc) { Load(argv[1]); } // ウィンドウクラスの登録 WNDCLASSEX wcx; ZeroMemory( wcx, sizeof wcx); wcx.cbSize= sizeof wcx; wcx.style= CS_HREDRAW | CS_VREDRAW; wcx.lpfnWndProc= WndProc; wcx.hInstance= hInstance; wcx.hCursor= LoadCursor(NULL, IDC_ARROW); wcx.hbrBackground= (HBRUSH)(COLOR_WINDOW + 1); wcx.lpszClassName= APP_NAME; if (RegisterClassEx( wcx) == 0) { return 0; } // ウィンドウの作成 HWND hWnd = CreateWindow( APP_NAME, APP_NAME, WS_OVERLAPPEDWINDOW | WS_HSCROLL, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (hWnd == NULL) { return 0; } ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); // メッセージループ MSG msg; while (GetMessage( msg, NULL, 0, 0)) { TranslateMessage( msg); DispatchMessage( msg); } return msg.wParam; } void Trace(LPCTSTR format, ...) { va_list arg_ptr; TCHAR buffer[256]; int size; va_start(arg_ptr, format); size = _vsntprintf_s(buffer, _countof(buffer), _TRUNCATE, format, arg_ptr); va_end(arg_ptr); OutputDebugString(buffer); if (size 0) { OutputDebugString(_T("...\n")); } } BOOL Load(LPTSTR pszFileName) { if (ReadWaveFile(pszFileName) == FALSE) { return FALSE; } AnalyzeWave(); return TRUE; } BOOL ReadWaveFile(LPTSTR pszFileName) { MMRESULT mmr; sampleLength = 0; SAFE_FREE(waveformData) // Open HMMIO hmmio = mmioOpen(pszFileName, NULL, MMIO_READ); if (hmmio == NULL) { return FALSE; } // RIFFチャンク MMCKINFO ckParent; ckParent.fccType = mmioFOURCC( W , A , V , E ); mmr = mmioDescend(hmmio, ckParent, NULL, MMIO_FINDRIFF); if (mmr != MMSYSERR_NOERROR) { return FALSE; } // fmtチャンク MMCKINFO ckSub; ckSub.ckid = mmioFOURCC( f , m , t , ); mmr = mmioDescend(hmmio, ckSub, ckParent, MMIO_FINDCHUNK); if (mmr != MMSYSERR_NOERROR) { return FALSE; } LONG read = mmioRead(hmmio, (HPSTR) wfx, 16); if (read != 16) { return FALSE; } mmioAscend(hmmio, ckSub, 0); // dataチャンク ckSub.ckid = mmioFOURCC( d , a , t , a ); mmr = mmioDescend(hmmio, ckSub, ckParent, MMIO_FINDCHUNK); if (mmr != MMSYSERR_NOERROR) { return FALSE; } sampleLength = ckSub.cksize; waveformData = (PBYTE)malloc(ckSub.cksize); if (waveformData == NULL) { return FALSE; } read = mmioRead(hmmio, (HPSTR)waveformData, ckSub.cksize); if (read != ckSub.cksize) { return FALSE; } mmioAscend(hmmio, ckSub, 0); // RIFFチャンク mmioAscend(hmmio, ckParent, 0); // Close mmioClose(hmmio, 0); return TRUE; } BOOL AnalyzeWave(void) { for (int pos = 0; pos = (int)sampleLength - 200 * 2; ) {// 11,025Hz / 55Hz = 200.45 double r = -1; int waveLen; for (int wl = 12; wl = 200; wl++) { double sum = 0; for (int i = 0; i wl; i++) { sum += NORM(waveformData[pos + i]) * NORM(waveformData[pos + wl + i]); } sum /= wl; // 倍音抑制バイアス //sum *= 1 + 0.1 * log(200.0 / wl) / log(2.0); sum *= pow(1.1, log2((double)200 / wl)); if (r sum) { r = sum; waveLen = wl; } } double freq = (double)wfx.nSamplesPerSec / waveLen; double d = A4 + 12 * log2(freq / 440); Wave wave; wave.pos= pos; wave.waveLen= waveLen; wave.noteNum= int(d + 0.5); wave.vol= Volume(pos, waveLen); vWave.push_back(wave); pos += waveLen; } sampleLength2 = 0; for (VWave iterator it = vWave.begin(); it != vWave.end(); it++) { sampleLength2 += it- waveLen; } waveformData2 = (PBYTE)malloc(sampleLength2); int pos = 0; for (VWave iterator it = vWave.begin(); it != vWave.end(); it++) { for (int i = 0; i it- waveLen; i++) { double t = i / (double)it- waveLen; double y = t 0.5 ? 1 -1; //double y = sin(2 * M_PI * t); waveformData2[pos + i] = BYTE(128 + 127 * it- vol * y); } pos += it- waveLen; } return TRUE; } // 音量 double Volume(int pos, int wl) { double sum = 0; for (int i = 0; i wl; i++) { sum += abs(NORM(waveformData[pos + i])); } return sum / wl; } //------------------------------------------------------------------------------ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case MM_WOM_OPEN OnWomOpen(); return 0; case MM_WOM_DONE OnWomDone(hWnd); return 0; case WM_PAINT OnPaint(hWnd); return 0; case WM_HSCROLL OnHScroll(hWnd, wParam); return 0; case WM_SIZE OnSize(hWnd, wParam, lParam); return 0; case WM_CHAR OnChar(hWnd, wParam, lParam); return 0; case WM_CREATE OnCreate(hWnd); return 0; case WM_DESTROY SAFE_FREE(waveformData) SAFE_FREE(waveformData2) PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, uMsg, wParam, lParam); } void OnCreate(HWND hWnd) { RECT rc; GetClientRect(hWnd, rc); siHorz.cbSize= sizeof siHorz; siHorz.fMask= SIF_RANGE | SIF_PAGE | SIF_POS | SIF_DISABLENOSCROLL; siHorz.nMin= 0; siHorz.nMax= sampleLength - 1; siHorz.nPage= rc.right; siHorz.nPos= 0; SetScrollInfo(hWnd, SB_HORZ, siHorz, FALSE); } void OnSize(HWND hWnd, WPARAM wParam, LPARAM lParam) { if (wParam == SIZE_MINIMIZED) return; siHorz.nPage= LOWORD(lParam); int nPosMax= max(siHorz.nMax - (int)siHorz.nPage + 1, 0); siHorz.nPos= min(siHorz.nPos, nPosMax); SetScrollInfo(hWnd, SB_HORZ, siHorz, TRUE); } void OnHScroll(HWND hWnd, WPARAM wParam) { int nPos = siHorz.nPos; switch (LOWORD(wParam)) { case SB_LINEUP nPos -= 10; break; case SB_LINEDOWN nPos += 10; break; case SB_PAGEUP nPos -= siHorz.nPage; break; case SB_PAGEDOWN nPos += siHorz.nPage; break; case SB_THUMBTRACK SCROLLINFO si; si.cbSize= sizeof si; si.fMask= SIF_TRACKPOS; if (GetScrollInfo(hWnd, SB_HORZ, si) != 0) { nPos = si.nTrackPos; } break; } int nPosMax = max(siHorz.nMax - (int)siHorz.nPage + 1, 0); nPos = min(nPos, nPosMax); nPos = max(nPos, 0); if (nPos == siHorz.nPos) return; ScrollWindowEx(hWnd, siHorz.nPos - nPos, 0, NULL, NULL, NULL, NULL, SW_INVALIDATE | SW_ERASE); siHorz.nPos = nPos; SetScrollInfo(hWnd, SB_HORZ, siHorz, TRUE); UpdateWindow(hWnd); } void OnPaint(HWND hWnd) { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, ps); RECT rc; GetClientRect(hWnd, rc); //Trace(_T("OnPaint %d %d\n"), ps.rcPaint.left, ps.rcPaint.right); // waveform HPEN pen = CreatePen(PS_SOLID, 0, RGB(0,0,255)); HGDIOBJ penOld = SelectObject(hdc, pen); for (int x = ps.rcPaint.left; x ps.rcPaint.right; x++) { size_t i = siHorz.nPos + x; if (sampleLength = i) break; MoveToEx(hdc, x, rc.bottom / 2, NULL); LineTo(hdc, x, rc.bottom * (255 - waveformData[i]) / 256); } SelectObject(hdc, penOld); DeleteObject(pen); // waveform2 pen = CreatePen(PS_SOLID, 0, RGB(0,255,0)); penOld = SelectObject(hdc, pen); for (int x = ps.rcPaint.left; x ps.rcPaint.right; x++) { size_t i = siHorz.nPos + x; if (sampleLength2 = i) break; int y = rc.bottom * (255 - waveformData2[i]) / 256; MoveToEx(hdc, x, y, NULL); LineTo(hdc, x, y + 1); } SelectObject(hdc, penOld); DeleteObject(pen); // waveLen pen = CreatePen(PS_SOLID, 0, RGB(255,0,0)); penOld = SelectObject(hdc, pen); for (VWave iterator it = vWave.begin(); it != vWave.end(); it++) { int x = it- pos - siHorz.nPos; if (x + it- waveLen 0 || rc.right = x) continue; MoveToEx(hdc, x, 0, NULL); LineTo(hdc, x, rc.bottom); TCHAR buf[4+1]; _stprintf_s(buf, _T("%d"), it- waveLen); TextOut(hdc, x, 0, buf, _tcslen(buf)); _stprintf_s(buf, _T("%s%d"), scale[it- noteNum % 12], it- noteNum / 12 - 1); TextOut(hdc, x, 16, buf, _tcslen(buf)); } SelectObject(hdc, penOld); DeleteObject(pen); EndPaint(hWnd, ps); } void OnChar(HWND hWnd, WPARAM wParam, LPARAM lParam) { Trace(_T("OnChar %x %x\n"), wParam, lParam); switch (wParam) { case VK_ESCAPE DestroyWindow(hWnd); break; case p Play(hWnd); break; } } void Play(HWND hWnd) { if (hCursor) return; WAVEFORMATEX wf; wf.wFormatTag= WAVE_FORMAT_PCM; wf.wBitsPerSample= 8; wf.nChannels= 1; wf.nSamplesPerSec= wfx.nSamplesPerSec; wf.nBlockAlign= (wf.wBitsPerSample / 8) * wf.nChannels; wf.nAvgBytesPerSec= wf.nSamplesPerSec * wf.nBlockAlign; wf.cbSize= 0; MMRESULT mmr = waveOutOpen( hwo, WAVE_MAPPER, wf, (DWORD_PTR)hWnd, 0, CALLBACK_WINDOW); if (mmr != MMSYSERR_NOERROR) { Trace(_T("waveOutOpen\n")); return; } HCURSOR hWait = LoadCursor(NULL, IDC_WAIT); hCursor = SetCursor(hWait); SetClassLong(hWnd, GCL_HCURSOR, (LONG)hWait); } void OnWomOpen(void) { wh.lpData= (LPSTR)waveformData2; wh.dwBufferLength= sampleLength2; wh.dwBytesRecorded= 0; wh.dwUser= 0; wh.dwFlags= 0; wh.dwLoops= 0; wh.lpNext= NULL; wh.reserved= 0; MMRESULT mmr = waveOutPrepareHeader(hwo, wh, sizeof wh); if (mmr != MMSYSERR_NOERROR) { Trace(_T("waveOutPrepareHeader\n")); return; } wh.dwFlags|= WHDR_BEGINLOOP | WHDR_ENDLOOP; wh.dwLoops= 1; mmr = waveOutWrite(hwo, wh, sizeof wh); if (mmr != MMSYSERR_NOERROR) { Trace(_T("waveOutWrite\n")); } } void OnWomDone(HWND hWnd) { Trace(_T("OnWomDone\n")); waveOutReset(hwo); waveOutUnprepareHeader(hwo, wh, sizeof wh); waveOutClose(hwo); SetCursor(hCursor); SetClassLong(hWnd, GCL_HCURSOR, (LONG)hCursor); hCursor = NULL; }
https://w.atwiki.jp/sampleisbest/pages/269.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 プロジェクト プロジェクト名 WaveGraph アプリケーションの種類 Windows アプリケーション 追加のオプション 空のプロジェクト 文字セット Unicode Waveファイル(PCM 11.025kHz 8bit mono)を想定。 WaveGraph.cpp #pragma comment(lib, "winmm") #define _USE_MATH_DEFINES #include Windows.h #include tchar.h #include math.h #include vector using namespace std; typedef struct { int pos; int wl; int noteNum; double vol; } Wave; typedef vector Wave VWave; // note number #define A133 #define A469 #define A581 #define SAFE_FREE(p)if (p) { free(p); p = NULL; } #define APP_NAMETEXT("WaveGraph") // 関数プロトタイプ宣言 void Trace(LPCTSTR format, ...); BOOL Load(LPTSTR pszFileName); BOOL ReadWaveFile(LPTSTR pszFileName); BOOL AnalyzeWave(void); double LeastSquares(int pos, double freq, double waveLen); double Volume(int pos, int wl); LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); void OnCreate(HWND hWnd); void OnSize(HWND hWnd, WPARAM wParam, LPARAM lParam); void OnHScroll(HWND hWnd, WPARAM wParam); void OnPaint(HWND hWnd); LPCTSTR GetScale(int noteNum); void OnChar(HWND hWnd, WPARAM wParam, LPARAM lParam); void Play(HWND hWnd); void OnWomOpen(void); void OnWomDone(HWND hWnd); // 音階 LPCTSTR scale[] = {L"C",L"C#",L"D",L"D#",L"E",L"F",L"F#",L"G",L"G#",L"A",L"A#",L"B"}; // 外部変数 SCROLLINFO siHorz; DWORD sampleLength; PBYTE waveformData = NULL; WAVEFORMATEX wfx; VWave vWave; HWAVEOUT hwo; WAVEHDR wh; HCURSOR hCursor = NULL; DWORD sampleLength2; PBYTE waveformData2 = NULL; //============================================================================== int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow) { // プログラム引数 LPTSTR lpCmdLine = GetCommandLine(); int argc; LPTSTR *argv = CommandLineToArgvW(lpCmdLine, argc); if (2 = argc) { Load(argv[1]); } // ウィンドウクラスの登録 WNDCLASSEX wcx; ZeroMemory( wcx, sizeof wcx); wcx.cbSize= sizeof wcx; wcx.style= CS_HREDRAW | CS_VREDRAW; wcx.lpfnWndProc= WndProc; wcx.hInstance= hInstance; wcx.hCursor= LoadCursor(NULL, IDC_ARROW); wcx.hbrBackground= (HBRUSH)(COLOR_WINDOW + 1); wcx.lpszClassName= APP_NAME; if (RegisterClassEx( wcx) == 0) { return 0; } // ウィンドウの作成 HWND hWnd = CreateWindow( APP_NAME, APP_NAME, WS_OVERLAPPEDWINDOW | WS_HSCROLL, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (hWnd == NULL) { return 0; } ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); // メッセージループ MSG msg; while (GetMessage( msg, NULL, 0, 0)) { TranslateMessage( msg); DispatchMessage( msg); } return msg.wParam; } void Trace(LPCTSTR format, ...) { va_list arg_ptr; TCHAR buffer[256]; int size; va_start(arg_ptr, format); size = _vsntprintf_s(buffer, _countof(buffer), _TRUNCATE, format, arg_ptr); va_end(arg_ptr); OutputDebugString(buffer); if (size 0) { OutputDebugString(_T("...\n")); } } BOOL Load(LPTSTR pszFileName) { if (ReadWaveFile(pszFileName) == FALSE) { return FALSE; } AnalyzeWave(); return TRUE; } BOOL ReadWaveFile(LPTSTR pszFileName) { MMRESULT mmr; sampleLength = 0; SAFE_FREE(waveformData) // Open HMMIO hmmio = mmioOpen(pszFileName, NULL, MMIO_READ); if (hmmio == NULL) { return FALSE; } // RIFFチャンク MMCKINFO ckParent; ckParent.fccType = mmioFOURCC( W , A , V , E ); mmr = mmioDescend(hmmio, ckParent, NULL, MMIO_FINDRIFF); if (mmr != MMSYSERR_NOERROR) { return FALSE; } // fmtチャンク MMCKINFO ckSub; ckSub.ckid = mmioFOURCC( f , m , t , ); mmr = mmioDescend(hmmio, ckSub, ckParent, MMIO_FINDCHUNK); if (mmr != MMSYSERR_NOERROR) { return FALSE; } LONG read = mmioRead(hmmio, (HPSTR) wfx, 16); if (read != 16) { return FALSE; } mmioAscend(hmmio, ckSub, 0); // dataチャンク ckSub.ckid = mmioFOURCC( d , a , t , a ); mmr = mmioDescend(hmmio, ckSub, ckParent, MMIO_FINDCHUNK); if (mmr != MMSYSERR_NOERROR) { return FALSE; } sampleLength = ckSub.cksize; waveformData = (PBYTE)malloc(ckSub.cksize); if (waveformData == NULL) { return FALSE; } read = mmioRead(hmmio, (HPSTR)waveformData, ckSub.cksize); if (read != ckSub.cksize) { return FALSE; } mmioAscend(hmmio, ckSub, 0); // RIFFチャンク mmioAscend(hmmio, ckParent, 0); // Close mmioClose(hmmio, 0); return TRUE; } BOOL AnalyzeWave(void) { for (int pos = 0; pos = (int)sampleLength - 201; ) {// 11,025Hz / 55Hz = 200.45 int noteNum = -1; double jMin = 4.0; int wl; for (int n = A1; n = A5; n++) { double freq = 440.0 * pow(pow(2.0, n - A4), 1.0 / 12); double waveLen = wfx.nSamplesPerSec / freq; double j = LeastSquares(pos, freq, waveLen); if (j jMin) { noteNum = n; jMin = j; wl = (int)ceil(waveLen); } } Wave wave; wave.pos= pos; wave.wl= wl; wave.noteNum= noteNum; wave.vol= Volume(pos, wl); vWave.push_back(wave); pos += wl; } sampleLength2 = 0; for (VWave iterator it = vWave.begin(); it != vWave.end(); it++) { sampleLength2 += it- wl; } waveformData2 = (PBYTE)malloc(sampleLength2); int pos = 0; for (VWave iterator it = vWave.begin(); it != vWave.end(); it++) { for (int i = 0; i it- wl; i++) { double t = i / (double)it- wl; double y = t 0.5 ? 1 -1; waveformData2[pos + i] = BYTE(128 + 127 * it- vol * y); } pos += it- wl; } return TRUE; } // 最小二乗法 double LeastSquares(int pos, double freq, double waveLen) { double sum = 0; int wl = (int)ceil(waveLen); for (int i = 0; i wl; i++) { double t = i * freq / wfx.nSamplesPerSec; double y = sin(2 * M_PI * t); //double y = t 0.5 ? t * 2 (t - 1) * 2; double d = (waveformData[pos + i] - 128.0) / 128 - y; sum += d * d; } return sum / waveLen; } // 音量 double Volume(int pos, int wl) { double sum = 0; for (int i = 0; i wl; i++) { sum += abs((waveformData[pos + i] - 128.0) / 128); } return sum / wl; } //------------------------------------------------------------------------------ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case MM_WOM_OPEN OnWomOpen(); return 0; case MM_WOM_DONE OnWomDone(hWnd); return 0; case WM_PAINT OnPaint(hWnd); return 0; case WM_HSCROLL OnHScroll(hWnd, wParam); return 0; case WM_SIZE OnSize(hWnd, wParam, lParam); return 0; case WM_CHAR OnChar(hWnd, wParam, lParam); return 0; case WM_CREATE OnCreate(hWnd); return 0; case WM_DESTROY SAFE_FREE(waveformData) SAFE_FREE(waveformData2) PostQuitMessage(0); return 0; } return DefWindowProc(hWnd, uMsg, wParam, lParam); } void OnCreate(HWND hWnd) { RECT rc; GetClientRect(hWnd, rc); siHorz.cbSize= sizeof siHorz; siHorz.fMask= SIF_RANGE | SIF_PAGE | SIF_POS | SIF_DISABLENOSCROLL; siHorz.nMin= 0; siHorz.nMax= sampleLength - 1; siHorz.nPage= rc.right; siHorz.nPos= 0; SetScrollInfo(hWnd, SB_HORZ, siHorz, FALSE); } void OnSize(HWND hWnd, WPARAM wParam, LPARAM lParam) { if (wParam == SIZE_MINIMIZED) return; siHorz.nPage= LOWORD(lParam); int nPosMax= max(siHorz.nMax - (int)siHorz.nPage + 1, 0); siHorz.nPos= min(siHorz.nPos, nPosMax); SetScrollInfo(hWnd, SB_HORZ, siHorz, TRUE); } void OnHScroll(HWND hWnd, WPARAM wParam) { int nPos = siHorz.nPos; switch (LOWORD(wParam)) { case SB_LINEUP nPos -= 10; break; case SB_LINEDOWN nPos += 10; break; case SB_PAGEUP nPos -= siHorz.nPage; break; case SB_PAGEDOWN nPos += siHorz.nPage; break; case SB_THUMBTRACK SCROLLINFO si; si.cbSize= sizeof si; si.fMask= SIF_TRACKPOS; if (GetScrollInfo(hWnd, SB_HORZ, si) != 0) { nPos = si.nTrackPos; } break; } int nPosMax = max(siHorz.nMax - (int)siHorz.nPage + 1, 0); nPos = min(nPos, nPosMax); nPos = max(nPos, 0); if (nPos == siHorz.nPos) return; ScrollWindowEx(hWnd, siHorz.nPos - nPos, 0, NULL, NULL, NULL, NULL, SW_INVALIDATE | SW_ERASE); siHorz.nPos = nPos; SetScrollInfo(hWnd, SB_HORZ, siHorz, TRUE); UpdateWindow(hWnd); } void OnPaint(HWND hWnd) { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, ps); RECT rc; GetClientRect(hWnd, rc); //Trace(_T("OnPaint %d %d\n"), ps.rcPaint.left, ps.rcPaint.right); // waveform HPEN pen = CreatePen(PS_SOLID, 0, RGB(0,0,255)); HGDIOBJ penOld = SelectObject(hdc, pen); for (int x = ps.rcPaint.left; x ps.rcPaint.right; x++) { size_t i = siHorz.nPos + x; if (sampleLength = i) break; MoveToEx(hdc, x, rc.bottom / 2, NULL); LineTo(hdc, x, rc.bottom * (255 - waveformData[i]) / 256); } SelectObject(hdc, penOld); DeleteObject(pen); // waveform2 pen = CreatePen(PS_SOLID, 0, RGB(0,255,0)); penOld = SelectObject(hdc, pen); for (int x = ps.rcPaint.left; x ps.rcPaint.right; x++) { size_t i = siHorz.nPos + x; if (sampleLength2 = i) break; int y = rc.bottom * (255 - waveformData2[i]) / 256; MoveToEx(hdc, x, y, NULL); LineTo(hdc, x, y + 1); } SelectObject(hdc, penOld); DeleteObject(pen); // waveLen pen = CreatePen(PS_SOLID, 0, RGB(255,0,0)); penOld = SelectObject(hdc, pen); for (VWave iterator it = vWave.begin(); it != vWave.end(); it++) { int x = it- pos - siHorz.nPos; if (x + it- wl 0 || rc.right = x) continue; MoveToEx(hdc, x, 0, NULL); LineTo(hdc, x, rc.bottom); LPCTSTR scale = GetScale(it- noteNum); TextOut(hdc, x, 0, scale, _tcslen(scale)); } SelectObject(hdc, penOld); DeleteObject(pen); EndPaint(hWnd, ps); } LPCTSTR GetScale(int noteNum) { static TCHAR buf[4+1]; _stprintf_s(buf, _T("%s%d"), scale[noteNum % 12], noteNum / 12 - 1); return buf; } void OnChar(HWND hWnd, WPARAM wParam, LPARAM lParam) { Trace(_T("OnChar %x %x\n"), wParam, lParam); switch (wParam) { case VK_ESCAPE DestroyWindow(hWnd); break; case p Play(hWnd); break; } } void Play(HWND hWnd) { if (hCursor) return; WAVEFORMATEX wf; wf.wFormatTag= WAVE_FORMAT_PCM; wf.wBitsPerSample= 8; wf.nChannels= 1; wf.nSamplesPerSec= wfx.nSamplesPerSec; wf.nBlockAlign= (wf.wBitsPerSample / 8) * wf.nChannels; wf.nAvgBytesPerSec= wf.nSamplesPerSec * wf.nBlockAlign; wf.cbSize= 0; MMRESULT mmr = waveOutOpen( hwo, WAVE_MAPPER, wf, (DWORD_PTR)hWnd, 0, CALLBACK_WINDOW); if (mmr != MMSYSERR_NOERROR) { Trace(_T("waveOutOpen\n")); return; } HCURSOR hWait = LoadCursor(NULL, IDC_WAIT); hCursor = SetCursor(hWait); SetClassLong(hWnd, GCL_HCURSOR, (LONG)hWait); } void OnWomOpen(void) { wh.lpData= (LPSTR)waveformData2; wh.dwBufferLength= sampleLength2; wh.dwBytesRecorded= 0; wh.dwUser= 0; wh.dwFlags= 0; wh.dwLoops= 0; wh.lpNext= NULL; wh.reserved= 0; MMRESULT mmr = waveOutPrepareHeader(hwo, wh, sizeof wh); if (mmr != MMSYSERR_NOERROR) { Trace(_T("waveOutPrepareHeader\n")); return; } wh.dwFlags|= WHDR_BEGINLOOP | WHDR_ENDLOOP; wh.dwLoops= 1; mmr = waveOutWrite(hwo, wh, sizeof wh); if (mmr != MMSYSERR_NOERROR) { Trace(_T("waveOutWrite\n")); } } void OnWomDone(HWND hWnd) { Trace(_T("OnWomDone\n")); waveOutReset(hwo); waveOutUnprepareHeader(hwo, wh, sizeof wh); waveOutClose(hwo); SetCursor(hCursor); SetClassLong(hWnd, GCL_HCURSOR, (LONG)hCursor); hCursor = NULL; }
https://w.atwiki.jp/sampleisbest/pages/146.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 コンソール アプリケーション プロジェクト名 devcaps アプリケーションの種類 コンソール アプリケーション 追加のオプション 空のプロジェクト devcaps.c #include tchar.h #include Windows.h #define pxtocm(px,dpi) ((px) * 2.54 / (dpi)) #define VarTrace(fmt,var) _tprintf(TEXT(#var)TEXT("=[")fmt##TEXT("]\n"), var) void PrintDevCaps(HDC hdc) { int nHorzRes= GetDeviceCaps(hdc, HORZRES); int nVertRes= GetDeviceCaps(hdc, VERTRES); int nPhysicalWidth= GetDeviceCaps(hdc, PHYSICALWIDTH); int nPhysicalHeight= GetDeviceCaps(hdc, PHYSICALHEIGHT); int nPhysicalOffsetX= GetDeviceCaps(hdc, PHYSICALOFFSETX); int nPhysicalOffsetY= GetDeviceCaps(hdc, PHYSICALOFFSETY); int nLogPixelsX= GetDeviceCaps(hdc, LOGPIXELSX); int nLogPixelsY= GetDeviceCaps(hdc, LOGPIXELSY); double dWidth = pxtocm(nPhysicalWidth ? nPhysicalWidth nHorzRes, nLogPixelsX); double dHeight = pxtocm(nPhysicalHeight ? nPhysicalHeight nVertRes, nLogPixelsY); VarTrace(TEXT("%d"), nHorzRes); VarTrace(TEXT("%d"), nVertRes); VarTrace(TEXT("%d"), nPhysicalWidth); VarTrace(TEXT("%d"), nPhysicalHeight); VarTrace(TEXT("%d"), nPhysicalOffsetX); VarTrace(TEXT("%d"), nPhysicalOffsetY); VarTrace(TEXT("%d"), nLogPixelsX); VarTrace(TEXT("%d"), nLogPixelsY); VarTrace(TEXT("%.4f cm"), dWidth); VarTrace(TEXT("%.4f cm"), dHeight); } int main() { PRINTDLG pd; HDC hdc; HGLOBAL hr; BOOL br; _tprintf(TEXT("\n[display]\n")); hdc = CreateIC(TEXT("DISPLAY"), NULL, NULL, NULL); if (hdc == NULL) { return 1; } PrintDevCaps(hdc); br = DeleteDC(hdc); _tprintf(TEXT("\n[default printer]\n")); ZeroMemory( pd, sizeof pd); pd.lStructSize= sizeof pd; pd.Flags= PD_RETURNDEFAULT | PD_RETURNIC; br = PrintDlg( pd);// ウィンドウがないのでPrintDlgExの代用 if (br == FALSE) { return 1; } if (pd.hDC == NULL) { return 1; } PrintDevCaps(pd.hDC); br = DeleteDC(pd.hDC); hr = GlobalFree(pd.hDevMode); hr = GlobalFree(pd.hDevNames); return 0; } 実行 [display] nHorzRes=[1920] nVertRes=[1200] nPhysicalWidth=[0] nPhysicalHeight=[0] nPhysicalOffsetX=[0] nPhysicalOffsetY=[0] nLogPixelsX=[96] nLogPixelsY=[96] dWidth=[50.8000 cm] dHeight=[31.7500 cm] [default printer] nHorzRes=[6826] nVertRes=[4800] nPhysicalWidth=[7015] nPhysicalHeight=[4960] nPhysicalOffsetX=[70] nPhysicalOffsetY=[80] nLogPixelsX=[600] nLogPixelsY=[600] dWidth=[29.6968 cm] dHeight=[20.9973 cm]
https://w.atwiki.jp/xbox360analysis/pages/64.html
SAVEFILESから取り出したPLAYDATA#.PPが対象 チェックサム ENDIAN(BIG) CSUM == FFFFFFFF CSUM = CRC32F( 10, xxxxx, EDB88320 ) WRITE( 8, 4 ) アドレス10からの4バイトの値を調べ、その値から-1hしたものが xxxxx になる 2-1以降使えない?? クレジット 93C-xxxxxxxx メディジェル所持数 BAB-xx PRIMARY WEPON B8E-xxxx 武器コード B90-yyyy 装填数 B92-zzzz 段数 SECONDARY WEPON B96-xxxx 武器コード B98-yyyy 装填数 B9A-zzzz 段数 グレネード B86-xxxx B88-yyyy B8A-zzzz
https://w.atwiki.jp/yani/pages/16.html
まずは何も考えず一番短いプログラムを書いて、慣れることから始めます。 #include stdio.h int main(void) { return 0; } 上記のプログラムを書いたら「Ctrl + F5」を押して実行しましょう。 ちゃんと書けていれば、なんかそれっぽい黒い画面が出てきます。
https://w.atwiki.jp/mtgwiki/pages/144.html
《B.F.M.(Big Furry Monster)》 #whisper 2枚一組(左、右)のカード、黒15マナというマナ・コスト、99/99というパワー・タフネス、非常に長いクリーチャー・タイプ名。 どれをとっても普通ではないことが分かる巨大クリーチャー。 イラストで角に刺さっているのはこれが出るまで最大のパワーを持っていたクリーチャーであるPolar Krakenとファイレクシアン・ドレッドノート/Phyrexian Dreadnought。フレイバー・テキストはPolar Krakenを真似ている。 なお、最大マナ・コストの記録だけは他のカードによって更新された。(ドラコ/Draco、Gleemax) 最強クリーチャーや最大クリーチャーの話題になると名前が出てくる事も。 生ける屍/Living Deathや歯と爪/Tooth and Nailなどの複数のクリーチャー・カードを場に出せる効果で場に出すことができる。 フレイバー・テキスト (日本語訳と注は あんかば カードリストより引用) It was big. Really, really big. No, bigger than that. Even bigger. Keep going. More. No, more. Look, we re talking krakens and dreadnoughts for jewelry. It was big! -Arna Kennerud, skyknight 大きい。実に、本当に大きい。あれより大きなものはまず存在しないわ。もっともっと大きいの。それ以上ないほど。見て、話してたクラーケンやドレッドノートを飾りにしてるわ。とにかく大きいの! −飛空騎士、アーナ・ケネルッド Polar Krakenのフレーバーのパロディ 参考 カード個別評価:Unglued系 壁紙
https://w.atwiki.jp/sampleisbest/pages/78.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 プロジェクト プロジェクト名 aaa アプリケーションの種類 Windows アプリケーション 追加のオプション 空のプロジェクト レジストリへの登録 regsvr32 C \aaa.dll レジストリの登録を解除 regsvr32 /u C \aaa.dll 参考 Infotip ハンドラ aaa.def ; リンカー/入力/モジュール定義ファイル LIBRARY"aaa" EXPORTS DllCanUnloadNow PRIVATE DllGetClassObject PRIVATE DllRegisterServer PRIVATE DllUnregisterServer PRIVATE aaa.h class CQueryInfo public IQueryInfo, public IPersistFile { public STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject); STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release(); // IQueryInfo STDMETHODIMP GetInfoTip(DWORD dwFlags, LPWSTR *ppwszTip); STDMETHODIMP GetInfoFlags(DWORD *pdwFlags); // IPersistFile STDMETHODIMP GetClassID(CLSID *pClassID); STDMETHODIMP IsDirty(); STDMETHODIMP Load(LPCOLESTR pszFileName, DWORD dwMode); STDMETHODIMP Save(LPCOLESTR pszFileName, BOOL fRemember); STDMETHODIMP SaveCompleted(LPCOLESTR pszFileName); STDMETHODIMP GetCurFile(LPOLESTR *ppszFileName); CQueryInfo(); ~CQueryInfo(); private LONGm_cRef; WCHARm_szInfotip[256]; }; class CClassFactory public IClassFactory { public STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject); STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release(); // IClassFactory STDMETHODIMP CreateInstance(IUnknown *pUnkOuter, REFIID riid, void **ppvObject); STDMETHODIMP LockServer(BOOL fLock); }; aaa.c #pragma comment(lib, "shlwapi.lib") #include ShlObj.h #include Shlwapi.h #include Windows.h #include "aaa.h" // 関数プロトタイプ宣言 void LockModule(BOOL bLock); BOOL CreateRegistryKey(HKEY hKeyRoot, LPTSTR lpszKey, LPTSTR lpszValue, LPTSTR lpszData); // グローバル変数 const CLSIDCLSID_QueryInfoSample = {0x6986c66a, 0x401f, 0x4535, {0x89, 0x18, 0x48, 0x07, 0x29, 0x39, 0xd2, 0xa4}}; const TCHARg_szClsid[] = TEXT("{6986C66A-401F-4535-8918-48072939D2A4}"); const TCHARg_szExt[] = TEXT(".aaa"); LONGg_lLocks = 0; HINSTANCEg_hinstDll = NULL; //============================================================================== // CQueryInfo CQueryInfo CQueryInfo() { m_cRef = 1; LockModule(TRUE); } CQueryInfo ~CQueryInfo() { LockModule(FALSE); } STDMETHODIMP CQueryInfo QueryInterface(REFIID riid, void **ppvObject) { *ppvObject = NULL; if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IQueryInfo)) { *ppvObject = static_cast IQueryInfo * (this); } else if (IsEqualIID(riid, IID_IPersist) || IsEqualIID(riid, IID_IPersistFile)) { *ppvObject = static_cast IPersistFile * (this); } else { return E_NOINTERFACE; } AddRef(); return S_OK; } STDMETHODIMP_(ULONG) CQueryInfo AddRef() { return InterlockedIncrement( m_cRef); } STDMETHODIMP_(ULONG) CQueryInfo Release() { if (InterlockedDecrement( m_cRef) == 0) { delete this; return 0; } return m_cRef; } //------------------------------------------------------------------------------ // IQueryInfo STDMETHODIMP CQueryInfo GetInfoTip(DWORD dwFlags, LPWSTR *ppwszTip) { if (!ppwszTip) { return E_POINTER; } *ppwszTip = (LPWSTR)CoTaskMemAlloc((lstrlenW(m_szInfotip) + 1) * sizeof (WCHAR)); lstrcpyW(*ppwszTip, m_szInfotip); return S_OK; } STDMETHODIMP CQueryInfo GetInfoFlags(DWORD *pdwFlags) { return E_NOTIMPL; } //------------------------------------------------------------------------------ // IPersistFile STDMETHODIMP CQueryInfo GetClassID(CLSID *pClassID) { *pClassID = CLSID_QueryInfoSample; return S_OK; } STDMETHODIMP CQueryInfo IsDirty() { return E_NOTIMPL; } STDMETHODIMP CQueryInfo Load(LPCOLESTR pszFileName, DWORD dwMode) { lstrcpyW(m_szInfotip, L"My Infotip"); return S_OK; } STDMETHODIMP CQueryInfo Save(LPCOLESTR pszFileName, BOOL fRemember) { return E_NOTIMPL; } STDMETHODIMP CQueryInfo SaveCompleted(LPCOLESTR pszFileName) { return E_NOTIMPL; } STDMETHODIMP CQueryInfo GetCurFile(LPOLESTR *ppszFileName) { return E_NOTIMPL; } //============================================================================== // CClassFactory STDMETHODIMP CClassFactory QueryInterface(REFIID riid, void **ppvObject) { *ppvObject = NULL; if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IClassFactory)) { *ppvObject = static_cast IClassFactory * (this); } else { return E_NOINTERFACE; } AddRef(); return S_OK; } STDMETHODIMP_(ULONG) CClassFactory AddRef() { LockModule(TRUE); return 2; } STDMETHODIMP_(ULONG) CClassFactory Release() { LockModule(FALSE); return 1; } //------------------------------------------------------------------------------ // IClassFactory STDMETHODIMP CClassFactory CreateInstance(IUnknown *pUnkOuter, REFIID riid, void **ppvObject) { CQueryInfo*p; HRESULThr; *ppvObject = NULL; if (pUnkOuter != NULL) { return CLASS_E_NOAGGREGATION; } p = new CQueryInfo(); if (p == NULL) { return E_OUTOFMEMORY; } hr = p- QueryInterface(riid, ppvObject); p- Release(); return hr; } STDMETHODIMP CClassFactory LockServer(BOOL fLock) { LockModule(fLock); return S_OK; } //============================================================================== // DLL Export STDAPI DllCanUnloadNow(void) { return (g_lLocks == 0) ? S_OK S_FALSE; } STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) { static CClassFactory serverFactory; HRESULThr; *ppv = NULL; if (IsEqualCLSID(rclsid, CLSID_QueryInfoSample)) { hr = serverFactory.QueryInterface(riid, ppv); } else { hr = CLASS_E_CLASSNOTAVAILABLE; } return hr; } STDAPI DllRegisterServer(void) { TCHARszModulePath[MAX_PATH]; TCHARszKey[256]; wsprintf(szKey, TEXT("CLSID\\%s"), g_szClsid); if (!CreateRegistryKey(HKEY_CLASSES_ROOT, szKey, NULL, TEXT("ShellExtension Sample"))) { return E_FAIL; } GetModuleFileName(g_hinstDll, szModulePath, _countof(szModulePath)); wsprintf(szKey, TEXT("CLSID\\%s\\InprocServer32"), g_szClsid); if (!CreateRegistryKey(HKEY_CLASSES_ROOT, szKey, NULL, szModulePath)) { return E_FAIL; } wsprintf(szKey, TEXT("CLSID\\%s\\InprocServer32"), g_szClsid); if (!CreateRegistryKey(HKEY_CLASSES_ROOT, szKey, TEXT("ThreadingModel"), TEXT("Apartment"))) { return E_FAIL; } wsprintf(szKey, TEXT("%s\\shellex\\{00021500-0000-0000-C000-000000000046}"), g_szExt); if (!CreateRegistryKey(HKEY_CLASSES_ROOT, szKey, NULL, (LPTSTR)g_szClsid)) { return E_FAIL; } return S_OK; } STDAPI DllUnregisterServer(void) { TCHARszKey[256]; wsprintf(szKey, TEXT("CLSID\\%s"), g_szClsid); SHDeleteKey(HKEY_CLASSES_ROOT, szKey); SHDeleteKey(HKEY_CLASSES_ROOT, g_szExt); return S_OK; } BOOL APIENTRY DllMain( HINSTANCEhinstDLL, DWORDfdwReason, LPVOIDlpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH g_hinstDll = hinstDLL; DisableThreadLibraryCalls(hinstDLL); break; } return TRUE; } //============================================================================== // Function void LockModule(BOOL bLock) { if (bLock) { InterlockedIncrement( g_lLocks); } else { InterlockedDecrement( g_lLocks); } } BOOL CreateRegistryKey(HKEY hKeyRoot, LPTSTR lpszKey, LPTSTR lpszValue, LPTSTR lpszData) { HKEYhKey; LONGlResult; DWORDdwSize; lResult = RegCreateKeyEx(hKeyRoot, lpszKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, hKey, NULL); if (lResult != ERROR_SUCCESS) { return FALSE; } if (lpszData != NULL) { dwSize = (lstrlen(lpszData) + 1) * sizeof (TCHAR); } else { dwSize = 0; } RegSetValueEx(hKey, lpszValue, 0, REG_SZ, (LPBYTE)lpszData, dwSize); RegCloseKey(hKey); return TRUE; }
https://w.atwiki.jp/elvis/pages/1785.html
Watership Down (Watership Down) Red Fox?Diane Redmond?Richard Adams?County Studios? Fire Fighter Piggywiggy Handprint Books Inc?Christyan FoxDiane Fox Spaceman PiggyWiggy Little Tiger Press?Christyan FoxDiane Fox Pirate PiggyWiggy Little Tiger Press?Christyan FoxDiane Fox Goodnight Piggy Wiggy A Pull-The-Page Book (Pull-The-Page Book) Chronicle Books Llc (Juv)?Christyan FoxDiane Fox Piggy Wiggy Conoces Los Contrarios? Timun Mas?Christyan /. Diane Fox? Piggy Wiggy de Qui Color Es? Timun Mas?Christyan FoxDiane Fox Raton, Que Te Pilla El Gato Con Bel Ediciones?Diane FoxChristyan FoxEmilia Hernandez? Piggy Wiggy Cuenta Hasta Diez Timun Mas?Christyan FoxDiane Fox Carving Wooden Critters Includes Power Carving Techniques Fox Chapel Pub?Diane Ernst? Fireman Piggywiggy Little Tiger Press?Christyan FoxDiane Fox Count to Ten, PiggyWiggy! Little Tiger Press?Christyan FoxDiane Fox What Colour Is That PiggyWiggy? Little Tiger Press?Christyan FoxDiane Fox Goodnight PiggyWiggy (A Pull-the-page Book) Little Tiger Press?Christyan FoxDiane Fox Bathtime PiggyWiggy (A Pull-the-page Book) Little Tiger Press?Christyan FoxDiane Fox Spaceman PiggyWiggy Little Tiger Press?Christyan FoxDiane Fox Tyson the Terrible Bloomsbury USA?Diane FoxChristyan Fox Fireman PiggyWiggy Gift Set Little Tiger Press?Christyan FoxDiane Fox What Shape Is That, Piggywiggy? (PiggyWiggy) Little Tiger Press?Christyan FoxDiane Fox Around the World PiggyWiggy (A Pull-the-page Book) Little Tiger Press?Christyan FoxDiane Fox Cat and Mouse Little Tiger Press?Christyan FoxDiane Fox Cat and Mouse Little Tiger Press?Christyan FoxDiane Fox Fireman PiggyWiggy Little Tiger Press?Christyan FoxDiane Fox Around the World Piggy Wiggy A Pull the Page Book (Pull-The-Page Book) Handprint Books Inc?Christyan FoxDiane Fox Bathtime Piggywiggy (Pull-The-Page Book) Handprint Books Inc?Christyan FoxDiane Fox What Color Is That, Piggywiggy? Handprint Books Inc?Christyan FoxDiane Fox Count to 10, Piggywiggy Handprint Books Inc?Christyan FoxDiane Fox What Shape Is That, Piggywiggy? Handprint Books Inc?Christyan FoxDiane Fox Astronaut Piggywiggy Handprint Books Inc?Christyan FoxDiane Fox What's the Opposite, Piggywiggy? Handprint Books Inc?Christyan FoxDiane Fox Tyson the Terrible Bloomsbury Publishing PLC?Christyan FoxDiane Fox Fridolin der Fuerchterliche Bloomsbury Kinderbuch?Diane FoxChristyan Fox Pirate Piggywiggy Handprint Books Inc?Christyan FoxDiane Fox Introducing Tosefta Textual, Intratextual, and Intertextual Studies Ktav Pub Inc?Harry Fox?Tirzah Meacham?Diane Kriger? Pinocchio Meets the Cat and Fox (Cutts, David. Adventures of Pinocchio, 2.) Troll Communications?David Cutts?Carlo Collodi?Diane Paterson? Pinocchio Meets the Cat and Fox (Cutts, David. Adventures of Pinocchio, 2.) Troll Communications Llc?David Cutts?Carlo Collodi?Diane Paterson? Jungle Street Hide-and-seek Campbell Books?Diane FoxChristyan Fox Kings in Calderon A Study in Characterization and Political Theory (Series a Monografias, No 121) Tamesis Books Ltd?Diane Fox Bridge to the Future Higher Education Planning for the Next Century in California Diane Pub Co?Warren H. Fox? Policy for Progress Reaffirming California Higher Education Accessibility, Affordability and Accountability into the 21st Century Diane Pub Co?Jr. Guillermo Rodriguez?Warren H. Fox? Tyson the Terrible Bloomsbury Publishing PLC?Christyan FoxDiane Fox Treasury of Love Proverbs from Many Lands Diane Pub Co?Rosemary Fox? Providing For Progress California Higher Education Enrollment Demand And Resources Into The 21st Century Diane Pub Co?Guillermo, Jr. Rodriguez?Warren H. Fox? Watership Down (Watership Down) Red Fox?Diane Redmond?Richard Adams? Rustic Accents for Your Home Projects from Vines, Twigs and Branches Diane Pub Co?Laura Donnellly Bethmann?Ann Ramp Fox? 25 Natural Ways To Relieve Back Pain A Mind-body Approach To Health And Well-being Diane Pub Co?Romy Fox? The Arthritis Cure The Medical Miracle That Can Halt, Reverse, and May Even Cure Osteoarthritis Diane Pub Co?Amal Das?Jason Theodosakis?Brenda Adderly?Barry Fox? Emergence of the Modern European World Diane Pub Co?Edward Whiting Fox? The Wordsworth Complete Guide to Heraldry Diane Pub Co?Arthur Charles Fox-Davies? Sub-Saharan Africa U.S. National Interests Diane Pub Co?Don Henk?C. William, Jr. Fox?Anthony D. Marley?John P. Brooks? Watership Down (Watership Down) Red Fox?Diane Redmond?Richard Adams? Watership Down (Watership Down) Red Fox?Diane Redmond?Richard Adams?County Studios? Watership Down (Watership Down) Red Fox?Diane Redmond?Richard Adams? Watership Down (Watership Down Mini Treasures) Red Fox?Diane Redmond?Richard Adams?County Studios? Watership Down (Watership Down Mini Treasures) Red Fox?Diane Redmond?Richard Adams?County Studios? Watership Down (Watership Down Mini Treasures) Red Fox?Diane Redmond?Richard Adams?County Studios? Watership Down (Watership Down Mini Treasures) Red Fox?Diane Redmond?Richard Adams?County Studios? Watership Down (Watership Down) Red Fox?Diane Redmond?Richard Adams? Charlie (Little Golden Readers) Goldencraft?Diane Fox Downs? Phonological Awareness in Reading The Evolution of Current Perspectives (Springer Series in Language and Communication) Springer-Verlag?Diane J. Sawyer?Barbara J. Fox? Watership Down (Watership Down) Red Fox?Diane Redmond?Richard Adams?County Studio? Watership Down (Watership Down) Red Fox?Diane Redmond?Richard Adams?County Studio? Hattie and the Fox/With Teacher's Guide (Perdicatable Big Book Series) Macmillan/Mcgraw-Hill School?Virginia A. Arnold?James Flood?Diane Lapp? Watership Down (Watership Down) Red Fox?Diane Redmond?Richard Adams? Calderon The Physician of His Honour Aris & Phillips?Diane FoxDonald Hindley? Goodnight PiggyWiggy Little Tiger P.?Christyan FoxDiane Fox Watership Down (Watership Down) Red Fox?Diane Redmond?Richard Adams? Piggy Wiggy Qui Forma Tiene? Timun Mas?Christyan /. Diane Fox? Colonial Art from Columbia Ecuador Americas Society?Marta F. De Rueda?Alexandra Kennedy?Santiago Sebastian?Ann Ffolliot?Daniel Jussim?Diane Nesin?Geoffrey Fox? Kit Fox Blues Eidolon Editions?Jack Crimmins?Diane Di Prima? Cat and Mouse The Hole Story Handprint Books Inc?Christyan FoxDiane Fox A Novel Study for Grades One Two Based on Fantastic Mr. Fox Raven Rock Pub?Diane Brookes?Roald Dahl?Quentin Blake? What's the Opposite, Piggywiggy? (PiggyWiggy) Little Tiger Press?Christyan FoxDiane Fox El Bano De Piggy Wiggy Diane Christyan y Fox? Traeum schoen, Piggy Wiggy. Ein Zieh- und Klapp- Buch. ( Ab 4 J.) Baumhaus Vlg., Frankfurt?Christyan FoxDiane Fox Pirate PiggyWiggy Little Tiger Press?Christyan FoxDiane Fox Maus, komm raus. Eine Geschichte mit Loechern. ( Ab 2 J.) Baumhaus Vlg., Frankfurt?Christyan FoxDiane Fox Watership Down Campion and the Slither Thing (Watership Down) Red Fox?Diane Redmond?County Studio? Watership Down Pipkin in Danger (Watership Down) Red Fox?Diane Redmond?County Studio? Where's Our Mama? (Red Fox Picture Books) Red Fox?Diane Goode? Feuerwehrmann Piggy Wiggy. ( Ab 3 J.) Baumhaus Vlg., Frankfurt?Christyan FoxDiane Fox Sueos de Piggy Wiggy, Los Timun Mas?Christyan FoxDiane Fox